import 'package:flutter/cupertino.dart';

///
/// @DIR_PATH：lib/utils
/// @TIME：2023/11/10 9:30
/// @AUTHOR：starr
/// 日志工具类

class LogUtils {
  ///打印log日志
  static const String _defaultLogTag = "flutter_log";

  ///是否是debug模式，true：log不输出
  static bool _debugMode = false;

  ///log日志的长度
  static int _maxLogLength = 130;

  ///当前的logTag的值
  static String _tagValue = _defaultLogTag;

  static void init({
    String tag = _defaultLogTag,
    bool isDebug = false,
    int maxLen = 130,
  }) {
    _tagValue = tag;
    _debugMode = isDebug;
    _maxLogLength = maxLen;
  }

  static void e(Object object, {String tag="flutter_log"}) {
    if (_debugMode) {
      _printLog(tag, 'e', object);
    }
  }

  static void _printLog(String tag, String s, Object object) {
    String da = object.toString();
    tag = tag ?? _tagValue; //tag为空则返回_tagValue的值
    if (da.length <= _maxLogLength) {
      debugPrint("$tag$tag $da");
      return;
    }
    debugPrint(
        '$tag$s — — — — — — — — — — — — — — — — st — — — — — — — — — — — — — — — —');
    while (da.isNotEmpty) {
      if (da.length > _maxLogLength) {
        debugPrint("$tag$s | ${da.substring(0, _maxLogLength)}");
        da = da.substring(_maxLogLength, da.length);
      } else {
        debugPrint("$tag$s | $da");
        da = "";
      }
    }
    debugPrint(
        '$tag$s — — — — — — — — — — — — — — — — ed — — — — — — — — — — — — — — — —');
  }
}
